package com.turing.post.common.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;

/**
 * 商户操作员数据访问接口
 * 
 * @author 李治
 * 
 */
@Remote
@Local
public interface MerchantOperDao {
	/**
	 * 根据商户操作员主键查询商户操作员信息
	 * 
	 * @param mrchOperId
	 *            商户操作员Id
	 * @return 商户操作员信息
	 */
	public MerchantOper getMerchantOperByMerchantOperId(
			BigInteger merchantOperId);

	/**
	 * 根据商户操作员登录名查询商户操作员信息
	 * 
	 * @param mrchOperLogonName
	 * @return
	 */
	public MerchantOper getMerchantOperByMrchOperLogonName(
			String mrchOperLogonName);

	/**
	 * 分页查询所有商户操作员
	 * 
	 * @param page
	 *            页数
	 * @return 商户操作员列表
	 */
	public List<MerchantOper> getMerchantOpers(Integer page);

	/**
	 * 查询所有商户操作员总数
	 * 
	 * @return 所有商户操作员总数
	 */
	public Integer getMerchantOpersCount();

	/**
	 * 根据商户号分页查询所有商户操作员
	 * 
	 * @param merchantNo
	 *            商户号
	 * @param page
	 *            页数
	 * @return 商户操作员列表
	 */
	public List<MerchantOper> getMerchantOpersByMerchantNo(String merchantNo,
			Integer page);

	/**
	 * 根据商户号查询所有商户操作员总数
	 * 
	 * @param merchantNo
	 *            商户号
	 * @return 所有商户操作员总数
	 */
	public Integer getMerchantOpersCountByMerchantNo(String merchantNo);

	/**
	 * 添加商户操作员
	 * 
	 * @param merchantOper
	 *            商户操作员
	 * @throws PCPSApplicationException
	 */
	public void insertMerchantOper(MerchantOper merchantOper)
			throws PCPSApplicationException;

	/**
	 * 修改商户操作员
	 * 
	 * @param merchantOper
	 *            商户操作员
	 * @throws PCPSApplicationException
	 */
	public void updateMerchantOper(MerchantOper merchantOper)
			throws PCPSApplicationException;

	/**
	 * 删除商户操作员
	 * 
	 * @param merchantOperId
	 *            商户操作员ID
	 * @throws PCPSApplicationException
	 */
	public void deleteMerchantOper(BigInteger merchantOperId)
			throws PCPSApplicationException;

	/**
	 * 获取主键最大值
	 * 
	 * @return 主键最大值
	 */
	BigInteger getMaxOperId();

	/**
	 * 根据商户操作员登录名查询商户操作员密码问题
	 * 
	 * @param mrchOperLogonName
	 * @return
	 */
	MerchantOper getMerchantOperQuestionByMrchOperLogonName(
			String mrchOperLogonName);
	
}
